<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>sakura 2.x系(内部Unicode版)について | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀ANSI版開発トップへ</a>
        <li><div class="list-title">
    <span class="no">2511</span>
    <a class="thread-title" href="2511.html#2511">sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2514</span>
    <a class="thread-title" href="2511.html#2514">Re:sakura 2.x系(内部Unicode版)について</a></div>
    </li><li><div class="list-title">
    <span class="no">2519</span>
    <a class="thread-title" href="2511.html#2519">Re: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2523</span>
    <a class="thread-title" href="2511.html#2523">Re2: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2526</span>
    <a class="thread-title" href="2511.html#2526">Re3: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2530</span>
    <a class="thread-title" href="2511.html#2530">Re4: sakura 2.x系(内部Unicode版)について</a></div>
    </li></ul></li></ul></li><li><div class="list-title">
    <span class="no">2535</span>
    <a class="thread-title" href="2511.html#2535">Re2: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2612</span>
    <a class="thread-title" href="2511.html#2612">Re3: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2969</span>
    <a class="thread-title" href="2511.html#2969">Re4: sakura 2.x系(内部Unicode版)について</a></div>
    </li><li><div class="list-title">
    <span class="no">2970</span>
    <a class="thread-title" href="2511.html#2970">Re4: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2971</span>
    <a class="thread-title" href="2511.html#2971">Unicodeについて＆拡張漢字対応希望</a></div>
    </li><li><div class="list-title">
    <span class="no">2975</span>
    <a class="thread-title" href="2511.html#2975">Re5: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2977</span>
    <a class="thread-title" href="2511.html#2977">Re6: sakura 2.x系(内部Unicode版)について</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li><li><div class="list-title">
    <span class="no">2634</span>
    <a class="thread-title" href="2511.html#2634">RE: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2635</span>
    <a class="thread-title" href="2511.html#2635">Re2: sakura 2.x系(内部Unicode版)について</a></div>
    <ul><li><div class="list-title">
    <span class="no">2911</span>
    <a class="thread-title" href="2511.html#2911">Re3: sakura 2.x系(内部Unicode版)について</a></div>
    </li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=2511>
    <span class="no">[2511]</span>
    <a class="thread-title" href="#2511">sakura 2.x系(内部Unicode版)について</a>
    <span class="author">もか</span>
    <time datetime="2002-12-09T19:56:57">2002年12月09日 19:56</time></h1>
    <div class="body">題名の通りUnicode版ですが，どこから手をつけていいものか...<br>ということで，提案があります。<br><br>今後関数を新規・修正などするときに，可能なときはMicrosoft式(?)に，TCHAR系で<br>Unicode先行対応しておくようにするというのはどうでしょうか？<br><br>#個人的には前面UTF-16サポートしたいが...<br></div></section>
    <ul><li><section><h1 id=2514>
    <span class="no">[2514]</span>
    <a class="thread-title" href="#2514">Re:sakura 2.x系(内部Unicode版)について</a>
    <span class="author">かろと</span>
    <time datetime="2002-12-10T00:17:01">2002年12月10日 00:17</time></h1>
    <div class="body">意義なしです。</div></section>
    </li><li><section><h1 id=2519>
    <span class="no">[2519]</span>
    <a class="thread-title" href="#2519">Re: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">げんた</span>
    <time datetime="2002-12-11T22:45:17">2002年12月11日 22:45</time></h1>
    <div class="body">&gt;今後関数を新規・修正などするときに，可能なときはMicrosoft式(?)に，TCHAR系で<br>&gt;Unicode先行対応しておくようにするというのはどうでしょうか？<br>内容には賛成ですが，具体的に使ってはいけない物と代わりに使うべき物の対応表と，使用時の注意点などを示していただけませんか？<br><br>あと，これってVC以外のコンパイラでも大丈夫なのでしょうか．<br></div></section>
    <ul><li><section><h1 id=2523>
    <span class="no">[2523]</span>
    <a class="thread-title" href="#2523">Re2: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">あろか</span>
    <time datetime="2002-12-12T00:53:42">2002年12月12日 00:53</time></h1>
    <div class="body">▼ げんたさん<br>&gt; &gt;今後関数を新規・修正などするときに，可能なときはMicrosoft式(?)に，TCHAR系で<br>&gt; &gt;Unicode先行対応しておくようにするというのはどうでしょうか？<br>&gt; 内容には賛成ですが，具体的に使ってはいけない物と代わりに使うべき物の対応表と，使用時の注意点などを示していただけませんか？<br>&gt; <br>&gt; あと，これってVC以外のコンパイラでも大丈夫なのでしょうか．<br>tchar.h をちゃんとincludeしておけば、BCCではOKです。<br></div></section>
    <ul><li><section><h1 id=2526>
    <span class="no">[2526]</span>
    <a class="thread-title" href="#2526">Re3: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">かろと</span>
    <time datetime="2002-12-12T21:38:28">2002年12月12日 21:38</time></h1>
    <div class="body">▼ あろかさん<br>&gt; &gt; あと，これってVC以外のコンパイラでも大丈夫なのでしょうか．<br>&gt; tchar.h をちゃんとincludeしておけば、BCCではOKです。<br><br>_T("文字") ってのも　使えるのでしょうか？<br></div></section>
    <ul><li><section><h1 id=2530>
    <span class="no">[2530]</span>
    <a class="thread-title" href="#2530">Re4: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">もか</span>
    <time datetime="2002-12-13T13:13:43">2002年12月13日 13:13</time></h1>
    <div class="body">&gt;_T("文字") ってのも　使えるのでしょうか？<br>BCC5.5.1では使えることをいちおう確認しています。<br>ちなみにBCCは\u0041とか\U00000041に対応しているようです。<br>VC6では見事にエラーになった気が...<br><br>コンパイルオプションで -D_UNICODE =DUNICODE が必要です。<br>_UNICODEは TCHAR等に影響<br>UNICODEは Win32APIに影響するのかな？<br><br>いきなり話題が変わりますが、<br>改行コード長は CEOL::GetLen()が現在でもTCHAR単位で値を返します。<br>CMemoryクラスをどうUnicode対応するかについては大問題になりそうです。<br>とりあえず、Unicode版ではバッファ末尾のNULL追加を1バイトから2バイトにしないと、アクセス違反で落ちる箇所が出てくるはずです。(バッファ末尾のNULLを明示的・暗黙的に期待する箇所)<br><br>一番の問題は、長さ(Len,Lenth)、大きさ(size)というものがバイト単位なのか、TCHAR単位なのか<br>をすべての関数で決めないといけないということだと思います。<br><br>#先に白状しておきますが、Unicodeのアプリケーション開発に実績があるわけではないので、大変です。<br></div></section>
    </li></ul></li></ul></li><li><section><h1 id=2535>
    <span class="no">[2535]</span>
    <a class="thread-title" href="#2535">Re2: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">もか</span>
    <time datetime="2002-12-26T15:47:51">2002年12月26日 15:47</time></h1>
    <div class="body">&gt;具体的に使ってはいけない物と代わりに使うべき物の対応表と，使用時の注意点などを示していただけませんか？<br>*C/C++ランタイム関数の対応表<br>については、全部並べるわけにも行かないので、MSDN(日本語)へリンクを張っておきます。<br><br>http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/vccore/_crt_generic.2d.text_mappings.htm<br><br>tchar.hで、足りない部分はmy_tchar.hとかを作るほかなさそうです。<br>_tmemcpyも VC6では未定義です。(メモリ操作に変数の型は関係ないからだとは思いますが)<br><br>*使用時の注意<br>■長さの単位に気をつけてください。<br>TCHAR szDes[100], szSrc[100];<br>// 例えば、以下の使用方法は間違いです。<br> _tcsncpy( szDes, szSrc, sizeof( szSrc ) );<br>// 正しくは以下のどれかです。<br> ・_tcsncpy( szDes, szSrc, 100 ); // szDes, szSrc は 100文字以上の配列だった場合<br> ・_tcsncpy( szDes, szSrc, sizeof( szSrc ) / sizeof( TCHAR ) );<br><br>■上のに近いですが文字数をSJISで数えないでください。<br>例:<br> _tmemcpy( szDes, _T("(無題)"), 6 );<br>_MBCS(SJIS) ではたしかに「6バイト/char[6]」ですが、<br>_UNICODE/UNICODE では、「8バイト/wchar_t[4]」です。<br>実際には、日本語特有の文字列はリソースかどこかに追い出すのでこの問題はなくなると思います。<br><br>■_tcs***は _MBCS定義時、 _mbs*** にマップされる<br>str*** を用いていた部分を _tcs*** に書き換えると、実際に利用される関数が _mbs*** になるために動作が変わる(バグの元になる)ことがあるかもしれません。<br>また、パフォーマンスが落ちるかも<br></div></section>
    <ul><li><section><h1 id=2612>
    <span class="no">[2612]</span>
    <a class="thread-title" href="#2612">Re3: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">あろか</span>
    <time datetime="2003-03-09T20:14:34">2003年03月09日 20:14</time></h1>
    <div class="body"><br>-DUNICODEでコンパイルすると、Win9x系で使えなくなると思います。<br>そうすると、文字列を以下の３グループに分けて扱わないとだめかなと。<br>１・API呼び出しに使う文字列(9x用にMBCSで残せるように)<br>２・内部で扱う文字列(Unicodeで統一)<br>３・デバッグ用文字列(charのままで充分)<br></div></section>
    <ul><li><section><h1 id=2969>
    <span class="no">[2969]</span>
    <a class="thread-title" href="#2969">Re4: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">みく</span>
    <time datetime="2003-07-22T23:21:34">2003年07月22日 23:21</time></h1>
    <div class="body"><br>ということは、9x系を切り捨てない限り<br>UNICODE,_UNICODEの定義はできないってことですよね。<br>結局、管理データは独自に定義・処理する必要が出てきてしまう。<br><br>・管理するデータ専用の型(例:MOJI)を新たに作成して、それで書き換える。<br>　（ただし、実態はwchar_tである）<br>・CMemoryとは別にCMojiみたいなクラスを(派生?)作って、それで書き換える。<br>　管理するデータは全部こちらを使う。<br>　必要な関数はこちらに移すなり作成するなりする。<br>・CMemoryはバイナリデータを扱うとき専用。<br>　（現状は混在している）<br>・同じコードを書けない場合は、#ifdef MOJIX とかで切り分ける。<br>　（これが一番問題なんだろう）<br><br>コンパイルでの切り替え例:(MOJIXが管理データを切り替えるオプションとすると...)<br>１．_MBCS: 現状、すべてSJIS<br>２．_MBCS,MOJIX: 管理データはUNICODE,他はSJIS<br>３．UNICODE,_UNICODE,MOJIX: すべてUNICODE(ただし9x系は動作せず)<br>　（_T(),TCHARはこのときのため？）<br><br>UNICODEは全部1文字で済むので、処理は簡単になると思うが、<br>文字の種類に関する処理では、複雑になると思われる。<br></div></section>
    </li><li><section><h1 id=2970>
    <span class="no">[2970]</span>
    <a class="thread-title" href="#2970">Re4: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">げんた</span>
    <time datetime="2003-07-23T01:43:35">2003年07月23日 01:43</time></h1>
    <div class="body">横からすいません．<br><br>「内部Unicode版」の解釈にちょっと認識のずれがあるのではないかと思います．<br>Unicode化と言ったときに<br>1. エディタで管理するデータの内部表現のUnicode化<br>2. APIのUnicode版使用<br><br>TCHARやLPTSTRを使うことでUnicode/ANSIの両方でコンパイルできるという話は2のAPIでWとAのどちらを使うかという話であり，APIの呼び出し効率程度の話にしか感じられません．<br><br>それに対して，内部管理をUnicodeにするというのは現在扱えない文字を扱えるようにするという話ですのである程度意味のあることだと思います．(もっともUnicodeも手放しで推進していいわけではないようですが)<br><br>そういう面から見ると<br>&gt;１・API呼び出しに使う文字列(9x用にMBCSで残せるように)<br>&gt;２・内部で扱う文字列(Unicodeで統一)<br>は内部で明確に区別する必要があるでしょう．Win95/98系を考えるとAPIはAnsiを使い続けるが，個人的にUnicode専用版を作ることは可能なようにしておく方針でいいんではないでしょうか．<br><br>意図的に内部コード用の文字列型を定義してAPIに与えるときは必ず変換関数を挟むとか？<br>型が同じならそのまま渡されて，異なったら変換されるとか．う～ん，面倒くさそう...<br><br>&gt;３・デバッグ用文字列(charのままで充分)<br>こちらはどちらでも受け入れられるように作っておけばいいのでは？（と言ってしまったけどできるのかな？）<br></div></section>
    <ul><li><section><h1 id=2971>
    <span class="no">[2971]</span>
    <a class="thread-title" href="#2971">Unicodeについて＆拡張漢字対応希望</a>
    <span class="author">wmlhq</span>
    <time datetime="2003-07-23T14:56:45">2003年07月23日 14:56</time></h1>
    <div class="body">Unicode専用版を作ることについてですが、再配布可能なPlatform SDKの<br>Microsoft Layer for Unicode on Windows 95/98/ME Systems (MSLU) <br>を使えば、すぐにUnicodeに対応できます。<br><br>http://www.microsoft.com/msdownload/platformsdk/sdkupdate/<br><br>ところで、サクラエディタは拡張漢字に対応してますか。</div></section>
    </li><li><section><h1 id=2975>
    <span class="no">[2975]</span>
    <a class="thread-title" href="#2975">Re5: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">みく</span>
    <time datetime="2003-07-24T21:11:42">2003年07月24日 21:11</time></h1>
    <div class="body"><br>&gt;意図的に内部コード用の文字列型を定義してAPIに与えるときは必ず変換関数を挟むとか？<br>&gt;型が同じならそのまま渡されて，異なったら変換されるとか．う～ん，面倒くさそう... <br><br>UNICODE,_UNICODEの定義ができないとなれば、<br>それに変わるものを独自に定義しないと駄目でしょう。<br>（_MBCSを定義している限り、TCHAR,_T()はcharでしかないので）<br><br>となると、記事2969になるわけです。<br><br><br>Microsoft Layer for Unicode on Windows 95/98/ME Systems (MSLU)<br>を使えば、完全にUNICODEにできるかもしれませんが、<br>NT,9x両方で動作させるためには、どうするんでしょう？<br>NT系は標準でAPIを持っているし（←競合しますよね）、<br>GetProcAddressでAPIテーブルでも作るんでしょうか。<br></div></section>
    <ul><li><section><h1 id=2977>
    <span class="no">[2977]</span>
    <a class="thread-title" href="#2977">Re6: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">wmlhq</span>
    <time datetime="2003-07-25T16:13:41">2003年07月25日 16:13</time></h1>
    <div class="body"><a href=http://go.microsoft.com/fwlink/?LinkId=14851 target=_top><nobr>http://<wbr>go.<wbr>microsof<wbr>t.<wbr>com/<wbr>fwlink/?<wbr>LinkId=<wbr>14851</nobr></a><br><a href=http://communities.microsoft.com/newsgroups/default.asp?ICP=Platformsdk&sLCID=US&NewsGroup=microsoft.public.platformsdk.mslayerforunicode target=_top><nobr>http://<wbr>communit<wbr>ies.<wbr>microsof<wbr>t.<wbr>com/<wbr>newsgrou<wbr>ps/<wbr>default.<wbr>asp?<wbr>ICP=<wbr>Platform<wbr>sdk&amp;<wbr>sLCID=<wbr>US&amp;<wbr>NewsGrou<wbr>p=<wbr>microsof<wbr>t.<wbr>public.<wbr>platform<wbr>sdk.<wbr>mslayerf<wbr>orunicod<wbr>e</nobr></a><br><a href=http://microsoft.com/globaldev/handson/dev/mslu_announce.mspx target=_top><nobr>http://<wbr>microsof<wbr>t.<wbr>com/<wbr>globalde<wbr>v/<wbr>handson/<wbr>dev/<wbr>mslu_ann<wbr>ounce.<wbr>mspx</nobr></a><br><a href=http://msdn.microsoft.com/msdnmag/issues/01/10/MSLU/default.aspx target=_top><nobr>http://<wbr>msdn.<wbr>microsof<wbr>t.<wbr>com/<wbr>msdnmag/<wbr>issues/<wbr>01/<wbr>10/<wbr>MSLU/<wbr>default.<wbr>aspx</nobr></a><br><a href=http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm?p=/msdownload/platformsdk/sdkupdate/psdkredist.htm target=_top><nobr>http://<wbr>www.<wbr>microsof<wbr>t.<wbr>com/<wbr>msdownlo<wbr>ad/<wbr>platform<wbr>sdk/<wbr>sdkupdat<wbr>e/<wbr>default.<wbr>htm?<wbr>p=/<wbr>msdownlo<wbr>ad/<wbr>platform<wbr>sdk/<wbr>sdkupdat<wbr>e/<wbr>psdkredi<wbr>st.<wbr>htm</nobr></a></div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li><li><section><h1 id=2634>
    <span class="no">[2634]</span>
    <a class="thread-title" href="#2634">RE: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">みく</span>
    <time datetime="2003-03-29T19:30:38">2003年03月29日 19:30</time></h1>
    <div class="body"><br>正規表現ライブラリは BREGEXP が使えなくなると思いますが、<br>代替は php-mbregex あたりでしょうか。<br></div></section>
    <ul><li><section><h1 id=2635>
    <span class="no">[2635]</span>
    <a class="thread-title" href="#2635">Re2: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">げんた</span>
    <time datetime="2003-03-30T03:06:09">2003年03月30日 03:06</time></h1>
    <div class="body">&gt;代替は php-mbregex あたりでしょうか。<br>以前boost::regexpが使えるという話が出ました。<br></div></section>
    <ul><li><section><h1 id=2911>
    <span class="no">[2911]</span>
    <a class="thread-title" href="#2911">Re3: sakura 2.x系(内部Unicode版)について</a>
    <span class="author">みく</span>
    <time datetime="2003-06-30T19:36:19">2003年06月30日 19:36</time></h1>
    <div class="body"><br>知っている人は知っていると思いますが、<br><br>http://www.freshports.org/devel/oniguruma/<br><br>もあるみたいです。<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></body></html>